#include #include #include const char* ssid = "Shahmeer"; const char* password = "redp5314"; const char* broker = "192.168.128.176"; // your laptop IP from ipconfig WiFiClient wifi; PubSubClient mqtt(wifi); Adafruit_LSM6DS33 lsm; void connectWifi() { Serial.print("Connecting to WiFi"); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\nWiFi connected"); Serial.println(WiFi.localIP()); } void connectMQTT() { while (!mqtt.connected()) { Serial.print("Connecting to MQTT..."); if (mqtt.connect("xiao-publisher")) { Serial.println("connected"); } else { Serial.print("failed, rc="); Serial.println(mqtt.state()); delay(2000); } } } void setup() { Serial.begin(115200); while (!Serial) delay(10); if (!lsm.begin_I2C()) { Serial.println("ERROR: LSM6DS33 not found"); while(1); } lsm.setAccelRange(LSM6DS_ACCEL_RANGE_2_G); lsm.setGyroRange(LSM6DS_GYRO_RANGE_500_DPS); lsm.setAccelDataRate(LSM6DS_RATE_52_HZ); lsm.setGyroDataRate(LSM6DS_RATE_52_HZ); connectWifi(); mqtt.setServer(broker, 1883); connectMQTT(); Serial.println("READY"); } void loop() { if (!mqtt.connected()) connectMQTT(); mqtt.loop(); sensors_event_t accel, gyro, temp; lsm.getEvent(&accel, &gyro, &temp); // build JSON payload char payload[128]; snprintf(payload, sizeof(payload), "{\"ax\":%.2f,\"ay\":%.2f,\"az\":%.2f,\"gx\":%.2f,\"gy\":%.2f,\"gz\":%.2f}", accel.acceleration.x, accel.acceleration.y, accel.acceleration.z, gyro.gyro.x, gyro.gyro.y, gyro.gyro.z); mqtt.publish("fab/imu", payload); Serial.println(payload); // so you can verify in serial monitor delay(1000); // }